package com.vpx.server.service.system;

import com.vpx.server.bean.order.base.BaseDeleteOrder;
import com.vpx.server.bean.order.base.BaseIdOrder;
import com.vpx.server.bean.order.system.SysRoleAuthOrder;
import com.vpx.server.bean.order.system.SysRoleOrder;
import com.vpx.server.bean.order.system.SysRolePageOrder;
import com.vpx.server.framework.base.BaseResult;
import com.vpx.server.bean.result.base.BaseDeleteResult;
import com.vpx.server.bean.result.system.SysRoleMenuOperateAuthResult;
import com.vpx.server.bean.result.system.SysRolePageResult;
import com.vpx.server.bean.result.system.SysRoleResult;
import com.vpx.server.framework.base.ResultMsg;

/**
 * @author liuks
 * @title: vpx
 * @module 角色管理
 * @description: 角色管理服务
 * @date 2021/9/9
 */
public interface SysRoleService {

    /**
     * 新增角色
     * @param order
     * @return
     */
    ResultMsg insert(SysRoleOrder order);

    /**
     * 修改角色
     *
     * @param order
     * @return
     */
    ResultMsg updateById(SysRoleOrder order);

    /**
     * 删除角色
     *
     * @param order
     * @return
     */
    ResultMsg deleteById(BaseDeleteOrder order);

    /**
     * 查询角色
     *
     * @param order
     * @return
     */
    ResultMsg<SysRoleResult> findById(BaseIdOrder order);

    /**
     * 分页查询角色
     *
     * @param order
     * @return
     */
    ResultMsg<SysRolePageResult> pageQuery(SysRolePageOrder order);

    /**
     * 查询角色菜单操作权限
     *
     * @param order
     * @return
     */
    ResultMsg<SysRoleMenuOperateAuthResult> findRoleMenuOperateAuth(BaseIdOrder order);

    /**
     * 保存角色权限
     * @param order
     * @return
     */
    ResultMsg saveRoleAuth(SysRoleAuthOrder order);
}
